package com.llmcu.source.javase.objectoriented.keywords.finalusage;

import lombok.Data;

/**
 * final修饰变量（成员变量、局部变量（形参、实参））
 *
 * @author liuling
 * @date 2024/10/7 1:13
 */
public class FinalField {

    /**
     * final修饰的成员变量，声明时初始化
     */
    private final String name = "";
    /**
     * final修饰的成员变量，构造方法时初始化
     */
    private final int age;

    public FinalField(int age) {
        this.age = age;
    }

    void hoo(final InnerClass innerClass) {
        // final修饰的形参局部变量，不能被赋予新值
//        innerClass = new InnerClass();
        innerClass.setName("");

        final String abc = "";
        // final修饰的实参局部变量，不能被赋予新值
//        abc="";
    }

    @Data
    class InnerClass {
        private String name;
    }
}
